package loveqq.niceexcel.annotation;


import loveqq.niceexcel.converter.Converter;
import loveqq.niceexcel.converter.internal.AutoConverter;

import java.lang.annotation.*;

/**
 * 表头定位
 *
 * @author zhongjh@tsintergy.com
 * @date 2022-08-16
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Repeatable(ExcelHeads.class)
public @interface ExcelHead {
    /**
     * 横向定位
     *
     * @return 行名
     */
    String row() default "";

    /**
     * 竖向定位
     *
     * @return 列名
     */
    String column() default "";

    /**
     * 单元格数据转换器 (默认自动根据单元格类型和字段类型匹配转换器)
     *
     * @return 转换器
     */
    Class<? extends Converter> converter() default AutoConverter.class;

    /**
     * 横向定位跨行时,指定第几行
     *
     * @return 跨行的位置
     */
    Position rowPosition() default @Position(index = 1, size = 1);

    /**
     * 竖向定位跨列时,指定第几列
     *
     * @return 跨列的位置
     */
    Position columnPosition() default @Position(index = 1, size = 1);

}
